﻿
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Configuration;
using System.Data.SqlClient;
using System.Data;
using System.Drawing;
using Website.Logger;
using DAL;
using BOL;
using System.Web.Script.Services;
using System.Web.Services;
using WebLib;
using UtilityExtensions;

namespace UILGestion.AlmacenAdmin
{
    public partial class NotaIngresoReadForm : System.Web.UI.Page
    {
       

    

        private void FormatForm()
        {
            //--------------------
            int idEmpleadoEmisor = int.Parse(System.Web.HttpContext.Current.Session["idEmpleado"].ToString());
            bool acceso = new DAL.FormularioAcceso().VerificarAcceso(DbUtil.Db,
                idEmpleadoEmisor,
                5, //Nota Ingreso
                int.Parse(idObra.Value),
                1); //lectura
            //------------------------- 
            // los paneles presentes en el formulario
            mainPanel1.Visible = true;
            PanelButtom.Visible=true;
            PanelBody.Visible = true;

            ShowAllComboBoxNew();

            LoadEntidad(int.Parse(internalid.Value));
           // EditarButton.Visible = false; //no se tiene claro como va a trabajar
            
        }
        protected void Page_Load(object sender, EventArgs e)
        {
            try
            {


                if (!Page.IsPostBack)
                {


                    idObra.Value = (string)Request.QueryString["idObra"];
                    internalid.Value = (string)Request.QueryString["id"];
                    idAlmacen.Value = (string)Request.QueryString["idAlmacen"];

                    menuObraCtrl1.loadMenuAlmacen(int.Parse(idObra.Value), int.Parse(idAlmacen.Value)); 
                   
                    FormatForm();

               

                }


            }
            catch (SqlException sqlex)
            {
                WebServerSideSqlError.Log(sqlex);
                ScriptManager.RegisterClientScriptBlock(this, typeof(Page),
                 "uniqueKey" + DateTime.Now, "alert('" + sqlex.Message.Replace("'", "") + "');", true);


            }
            catch (Exception ex)
            {
                WebServerSideError.Log(ex);
                ScriptManager.RegisterClientScriptBlock(this, typeof(Page),
                 "uniqueKey" + DateTime.Now, "alert('" + ex.Message.Replace("'", "") + "');", true);

            }

        }

        
        private void ShowAllComboBoxNew()
        {
            
            
        }

             


        protected void btnContinue_OnClick(object sender, EventArgs e)
        {
         
            try
            {
            if ((sender as Button).Text == refreshButton.Text)
            {
                FormatForm();
            }
            if ((sender as Button).Text == anteriorButton.Text)
            {
                int idAnterior = new NotaIngreso().getidAnterior(DbUtil.Db, int.Parse(internalid.Value), int.Parse(idAlmacen.Value));
                Response.Redirect("NotaIngresoReadForm.aspx?idAlmacen="+idAlmacen.Value+"&id=" + idAnterior.ToString() + "&idObra=" + idObra.Value, false);
            }
                if ((sender as Button).Text == siguienteButton.Text)
            {

                int siguiente = new NotaIngreso().getidSiguiente(DbUtil.Db, int.Parse(internalid.Value), int.Parse(idAlmacen.Value));
                Response.Redirect("NotaIngresoReadForm.aspx?idAlmacen=" + idAlmacen.Value + "&id=" + siguiente.ToString() + "&idObra=" + idObra.Value, false);

            }
                if ((sender as Button).Text == nuevoButton.Text)
            {
                Response.Redirect("NotaIngresoInsertOPTForm.aspx?idAlmacen=" + idAlmacen.Value + "&type=A&idObra=" + idObra.Value, true); 
            }
                if ((sender as Button).Text == EliminarButton.Text)
                {
                    NotaIngresoBL bol = new NotaIngresoBL();
                    bol.Delete(int.Parse(internalid.Value));
                    Response.Redirect(String.Format("NotaIngresoListForm.aspx?idAlmacen=" + idAlmacen.Value + "&idObra={0}", idObra.Value), false);
                }



                    if ((sender as Button).ID == editarBTN.ID)
            {
                Response.Redirect("NotaIngresoInsertForm.aspx?idAlmacen=" + idAlmacen.Value + "&idObra={0}&id={1}".Fmt(idObra.Value, internalid.Value));
            }

                
           }
            catch (SqlException sqlex)
            {
                WebServerSideSqlError.Log(sqlex);
                ScriptManager.RegisterClientScriptBlock(this, typeof(Page),
                 "uniqueKey" + DateTime.Now, "alert('" + sqlex.Message.Replace("'", "") + "');", true);
               

            }
            catch (Exception ex)
            {
                WebServerSideError.Log(ex);
                ScriptManager.RegisterClientScriptBlock(this, typeof(Page),
                 "uniqueKey" + DateTime.Now, "alert('" + ex.Message.Replace("'", "") + "');", true);
               
            }
        }

  





        private void LoadEntidad(int idInternal)
        {

            NotaIngresoBL bol = new NotaIngresoBL();
            NotaIngresoInfo notaIngreso = bol.Load(idInternal);
           


            tipoDocDropDownList.Text = notaIngreso.documentoTipo.ToString();
            numDocumentoLabel.Text = notaIngreso.numDocumento;
            motivoDropDownList.Text= notaIngreso.motivo.ToString();
            documentoTextBox.Text = notaIngreso.documentoRef;
            fechaEmisonTextBox.Text = notaIngreso.fecha.ToShortDateString();
            fechadocumentoTextBox.Text = notaIngreso.fechaDoc.ToShortDateString();
            observacionTextBox.Text = notaIngreso.observacion;
            almacenDropDownList.Text = notaIngreso.almacen;
            idAlmacen.Value = notaIngreso.idAlmacen.ToString();
            fechaCreTextBox.Text = notaIngreso.fechaCre.ToString();
            usuarioCreLabel.Text = notaIngreso.EmpleadoCre;
            proveedordocumentoTextBox.Text = notaIngreso.proveedor;
            

            //para los caso de visualizacion segun motivo
            proveedordocumentoTextBox.Text = notaIngreso.proveedor;
            tipoCambioLabel.Text = notaIngreso.tipoCambioDollar.ToString();

            if (notaIngreso.idMotivo==2) //motivo ajuste
            {
                proveedorlbl.Visible = false;
                tipoCambiolbl.Visible=true;
                 
            }
            if (notaIngreso.idMotivo == 1) //motivo ajuste
            {
                proveedorlbl.Visible = true;
                tipoCambiolbl.Visible = false;
                
            }
            if (notaIngreso.idMotivo == 13) //ingreso por transferencia
            {
                proveedorlbl.Visible = false;
                tipoCambiolbl.Visible = false;
                
            }
            DataBindItems(notaIngreso.idMotivo);
            
        }

        private void DataBindItems(int idOrigen)
        {
            NotaIngresoBL bol = new NotaIngresoBL();
            List<NotaIngresoItemInfo> items = bol.GetNotaIngresoItem(int.Parse(internalid.Value), idOrigen);

            itemGridView.DataSource = items;
            itemGridView.DataBind();

            ItemUpdatePanel.Update();
        }
        protected void ordenCompraLinkButton_Click(object sender, EventArgs e)
        {
           // Response.Redirect(String.Format("~/ObraAdmin/OrdenCompraReadForm.aspx?id={0}&idObra={1}", int.Parse(idordenCompra.Value), int.Parse(idObra.Value)));
        }


   
       


    }

}
